One of the great advantages of modern telecommunications systems is the ability to quickly and easily send messages (e.g., e-mail, SMS, MMS, SIP, HTTP, or other types of messages) from one location to another. In a typical messaging system, a user wishing to send a message may simply open a messaging application, invoke a new-message function, and enter pertinent data such as one or more message-recipients, a subject line, and message content. Once the user has finished generating the message, the user may then invoke a message-send function, to cause the application to send the message to the designated recipient(s). In turn, each message-recipient may then similarly open a corresponding messaging application and may invoke a message-receive function to receive the message and a message-view function to view the message.
In a usual arrangement, messages transmitted over a network from one point to another will pass through one or more message-routers (also known as message gateways, proxies, intermediaries, or by other names) on their way. Each message-router thus sits within a network communication path between a message-sender and one or more message-recipients, and functions at least in part to receive messages and to output the messages for transmission to one or more destinations.
In many cases, a message-router may function as bridge between different types of network segments and/or between disparate messaging-protocols. Further, a message-router may function as an aggregation point, linking one or more message input paths with a potentially different number of message output paths. To accommodate these or other scenarios, a message-router will typically maintain one or more message-queues for holding messages that await output. As the message-router receives messages, the router may programmatically place each message in a queue, and the router may output messages from the queue for transmission to their respective destinations, on a first-in-first-out basis or in some other manner (such as in message-priority order, for instance).
Numerous examples of messaging systems exist today. One of the more well known, for example, is the short messaging service (SMS) system, which provides for communication of short text messages to and from mobile stations such as cell phones and personal digital assistants (PDAs). In general, the SMS system may allow a person to simply type in a desired text message, indicate the directory number associated with a destination cell phone, and then transmit an SMS message encapsulating the desired text message. The telecommunications network then conveys the text message to the destination mobile station, where the message is typically displayed for receipt by an end-user.
During transmission of an SMS message from sender to recipient, the SMS message will typically traverse a number of message-routers. One such router, for example, is a short message service center (SMSC) (also sometime referred to simply as a message center (MC)), which is a functional entity that stores and forwards SMS messages to their destinations. The store and forward function provides a method of sending short messages to their destination recipient or storing those messages if the recipient is unavailable to receive them. This store and forward function can generally be distinguished from the real-time delivery requirements of voice calls, although SMS messages may be delivered in real time as well.
According to industry standards, an entity that sends or receives an SMS message is known as a short message entity (SME). The SME can be an application that resides on a MS, in which case the SME would be an MS-based SME. Alternatively, the SME can comprise, or reside on, another entity in a wireless or fixed network, i.e., in whether or not part of the wireless communications network. Typically, the SME can be arranged to compose, store, dispose of, act upon, display and/or otherwise manage short messages. It can also perform signaling functions to support other delivery features such as MS location and status queries, and mapping of destination addresses. In general, a typical SMSC can forward messages to an SME, store short messages for later delivery to an unavailable SMEs, apply originating and terminating SMS supplementary services (e.g., intelligent network services) to short messages, and serve other functions.
Each MS-based SME is usually associated with an SMSC known as the “home SMSC” in the MS's home system. Typically, a given SMSC then maintains the mobile identification number (MIN) address information of the MSs that it serves, and the SMSC is addressable by the directory numbers (e.g., telephone numbers, IP addresses, e-mail addresses, etc.) of those MSs for mobile terminated messages. When the SMSC receives a message for one of its MSs, it may then identify the location of the MS and forward the message to the mobile switching center (MSC) that serves that MS, for delivery of the message in turn over an air interface to the MS.
Another type of a message-router that can be used in SMS message communication is an interworking function that bridges between disparate types of transport networks, such as conventional SS7 networks (telephone networks), IP networks (e.g., the Internet), and X.25 networks, for instance. In a typical arrangement, an SMSC or MSC can be programmed as, or coupled with, an interworking function, so as to allow conversion of SMS messages from one form to another and thus to allow communication of SMS messages across disparate network segments.
In this way, for instance, an SMS message generated in an SS7-based network can be conveyed over an IP network to a POP3 e-mail server, which can then convert the message into an Simple Mail Transfer Protocol (SMTP) e-mail message and forward the e-mail message to a designated e-mail recipient (which may be considered a type of SME). As another example, text messages generated and conveyed in an IP network (e.g., by an e-mail client) might be conveyed via the interworking function to an SME in an SS7 network. An Internet Service Provider (ISP) may thus allow an Internet e-mail subscriber to send a text message to a designated MS-based SME referenced by a given directory number, for instance.
Still another type of a message-router that can be used in SMS message communications is a bulk message gateway (BMGW), which functions generally to receive SMS messages and to forward the SMS messages to the appropriate serving SMSCs. A BMGW typically comes into play when the sending-SME does not know the identity of the recipient-SME's SMSC, and/or when the sending-SME seeks to send SMS messages in bulk to numerous SMEs. The BMGW may maintain one or more tables correlating SMSC addresses with directory numbers or other SME identifiers. Upon receipt of an SMS message destined to a particular SME, the BMGW may then consult its table(s) to determine the SMSC that serves the recipient-SME, and the BMGW may then transmit the SMS message to that SMSC, for delivery in turn to the recipient-SME.
In an SMS system, as in other messaging systems, the speed and success of message delivery can greatly impact user-experience. For example, messages that contain time-sensitive content should be delivered promptly, otherwise the messages will become outdated. Further, message senders will expect that their messages will be successfully delivered to the designated message recipients. Consequently, a need exists to ensure proper, expected operation of each message-router that sits within the message communication path.